In order to display a graphical object using the pixels on a computer screen or other display device, the object is mapped onto a grid of pixels known as a framebuffer. Each pixel is mapped to a square area of the object. Using this mapping, one of a number of conventional techniques can be used to calculate a set of pixel values for each pixel. These pixel values include, conventionally, three color values (red, green, blue) and an alpha value, which is a transparency value. Conventionally, the pixel values for a pixel are determined by evaluating a function of the object at a point that corresponds to the center of the pixel.
Often, during rendering, the edges of a shape as rendered will exhibit jaggedness even though the edge was intended to be smooth. Such unwanted effects, known as aliasing effects, are notoriously obvious to the human eye. In order to reduce such effects, anti-aliasing is performed. Anti-aliasing techniques reduce aliasing effects, and thereby produce graphics superior to those produced without the use of such anti-aliasing techniques.
In order to satisfy performance requirements, anti-aliasing must take place in the graphics-optimized environment of the graphics card. High-quality graphics rendering systems may include anti-aliasing techniques, but because of the memory and processor requirements, on some general-purpose graphics cards, full-scene anti-aliasing techniques are not included. Where it is included, the full-scene anti-aliasing techniques are resource intensive, and in some cases do not provide quality rendering. Some graphics cards do include other anti-aliasing techniques, such as anti-aliasing of edges; however, support for such techniques is not broad, and the developer of an application cannot rely on such support. Even where full-scene anti-aliasing is included on a graphics card, the memory requirements on the card can be large and the performance does not support demanding real-time graphics.
Thus, there is a need to implement anti-aliasing of graphics objects for real-time graphics without requiring new functionality beyond that currently present in most graphics cards, without requiring large increases in processing or memory usage in the graphics card, and without relying on techniques which are not widely supported in existing graphics cards.